package fr.afcepf.atod19.patisserie.business;

import java.util.ArrayList;
import java.util.List;

import fr.afcepf.atod19.patisserie.data.DataPatisserieImpl;
import fr.afcepf.atod19.patisserie.data.IDataPatisserie;
import fr.afcepf.atod19.patisserie.entity.Patisserie;

public class BusinessPatisserieImpl implements IBusinessPatisserie {

    IDataPatisserie dataPatisserie;

    public BusinessPatisserieImpl() {
        dataPatisserie = new DataPatisserieImpl();
    }

    @Override
    public Integer add(Patisserie paraPatisserie) {
        List<Patisserie> liste = dataPatisserie.rechercher(paraPatisserie.getNom());
        Boolean trouve = false;
        if (liste != null) {
            for (Patisserie patisserie : liste) {
                if (patisserie.getNom().equals(paraPatisserie.getNom())
                        && patisserie.getDescription().equals(paraPatisserie.getDescription())
                        && patisserie.getPrix().equals(paraPatisserie.getPrix())
                        && patisserie.getCalories() == paraPatisserie.getCalories()) {
                    trouve = true;
                    break;
                }
            }
        }
        Integer retour = null;
        if (!trouve) {
            retour = dataPatisserie.ajouter(paraPatisserie);
        }

        return retour;

    }

    @Override
    public boolean remove(Patisserie paraPatisserie) {
        
        Boolean retour = dataPatisserie.manger(paraPatisserie);
        
        return retour;
    }

    @Override
    public List<Patisserie> find(String paraName) {
        List<Patisserie> retour = dataPatisserie.rechercher(paraName);
        if (retour == null) {
            retour = new ArrayList<>();
        }
        return retour;
    }

    /**
     * @return the dataPatisserie
     */
    public IDataPatisserie getDataPatisserie() {
        return dataPatisserie;
    }

    /**
     * @param paraDataPatisserie the dataPatisserie to set
     */
    public void setDataPatisserie(IDataPatisserie paraDataPatisserie) {
        dataPatisserie = paraDataPatisserie;
    }

}
